Computer networks have become ubiquitous in the home, office, and industrial environment. As computer networks have grown ever more complex, automated mechanisms for organizing and managing the networks have emerged. These mechanisms are generally implemented in the form of one or more computer programs, and are generically known as network management systems or applications.
FIG. 1 is a simplified diagram of a network 100 that is managed by a network management station 10. The network 100 comprises one or more network devices 102, such as switches, routers, bridges, gateways, and other devices. Each network device 102 is coupled to another network device 102, or to one or more end stations 120. Each end station 120 is a terminal node of the network 100 at which some type of work is carried out. For example, an end station 120 is a workstation, a printer, a server, or similar device.
Each network device 102 executes a network-oriented operating system 110. An example of a network-oriented operating system is the Internetworking Operating System (IOS) commercially available from Cisco Systems, Inc. Each network device 102 also executes one or more applications 112 under control of the operating system 102. The operating system 102 supervises operation of the applications 112 and communicates over network connections 104 using an agreed-upon network communication protocol, such as Simplified Network Management Protocol (SNMP).
Each device 102 stores information about its current configuration, and other information, in a Management Information Base (MEB) 114. Information in the MEB 114 is organized in one or more MIB variables. The network management station 10 can send fetch and set commands to the device 102 in order to retrieve or set values of MIB variables. Examples of MEB variables include SysObjID or SysOID.
Preferably the network management station 10 is a general-purpose computer system of the type shown and described further herein in connection with FIG. 10. The network management station IO executes one or more software components that carry out the functions shown in block diagram form in FIG. 1. For example, the network management station 10 executes a basic input/output system (BIOS) 20 that controls and governs interaction of upper logical layers of the software components with hardware of the network management station. An example of a suitable BIOS is the Phoenix ROM BIOS. The network management station 10 also executes an operating system 30 that supervises and controls operation of upper-level application programs. An example of a suitable operating system is the Microsoft Windows NT.RTM. operating system.
The network management station IO executes an asynchronous network interface 50 or ANI under control of the operating system 30. The ANI 50 provides an interface to the network 100 and communicates with the network using SNMP or another agreed-upon protocol. The ANI 50 provides numerous low-level services and functions for use by higher-level applications.
The network management station IO executes a network management system 40 that interacts with a database 60 containing information about the managed network 100. The network management system 40 is an example of a network management application. Using a network management application, a manager can monitor and control network components. For example, a network management application enables a manager to interrogate devices such as host computers, routers, switches, and bridges to determine their status, and to obtain statistics about the networks to which they attach. The network management application also enables a manager to control such devices by changing routes and configuring network interfaces. Examples network management applications are Cisco Works, Cisco Works for Switched Internetworks (CWSI), and Cisco View, each of which is commercially available from Cisco Systems, Inc.
Network management involves, in part, a process of dealing with abstractions that are made concrete for given devices within the managed network. For example, adding a port to a virtual local area network (VLAN) for one device may be require operations that are completely different from the same operation for another device.
Networks often contain many different devices. Often, the devices can be classified in families of similar kinds. Each family has many versions of hardware, firmware, and software. Releases of new devices and their firmware or software appear as soon as development is complete and a market exists. Thus, the need to manage the devices arises upon the release of a new device, a hardware revision, or new firmware or software. In some past approaches, a network management application is updated on a schedule different from the release schedule of managed devices. Each new network management application release includes new functions handle devices that came on the market or were installed in the network since the last release. However, this approach is widely viewed as undesirable, because until the next release of the network management application appears, the network management application cannot manage the new devices.
Often, a management operation applied to certain elements of a device is the same as the operation applied to all other devices. However, there also may be differences in methods of management between families of devices. Further, a family of devices generally shares many properties and therefore management of the members of a family is generally similar. However, there may also be differences among members of a family. Differences may also exist among executable program modules within a device.
Past approaches to these problems in network management applications are unsatisfactory. For example, in one approach, a device description file is delivered to the field independently of major releases of the network management application. This approach is used in the Cisco View product available from Cisco Systems, Inc. In this approach, the device description file identifies characteristics of program modules that are used in or executed by a particular device. However, sharing the device modules among different devices is virtually impossible. Second, each device family must implement all management definitions. Also, there are no functional abstractions that can be used to create a device description for a new device.
Based on the foregoing, there is a clear need to provide management of devices between major releases of a network management application.
There is also a need to provide automated management of new or different kinds of devices that become available after installation of a network management application.
In particular, there is a need to automatically integrate information about a new or different device with the network management application, without the requirement of releasing a revision of the entire network management application.
There is also a need to efficiently integrate information about a parent device with the network management application so that a child device, having a family relationship or hierarchical functional relationship to the parent device, is integrated into the network management application using a minimum of new code and storage space and a minimum or recoding on the part of the developer
There is also a need to create a set of abstractions whereby the operations on and data acquired from the devices of a network may be managed and understood in common rather in isolation.